#ifndef MOVEMAKER_H
#define MOVEMAKER_H

#include "board.h"
#include "movegenerator.h"

class MoveMaker
{   
public:
    // constructor
    // - set reference to board and move generator
    MoveMaker(Board & board, MoveGenerator & moveGenerator)
        : board_(board), moveGenerator_(moveGenerator)
    {
        qDebug() << "MoveMaker object created";
    }

    void testForCapture(bool, Move&); // TODO: check for performance issue while passing Move
    void doMove(Move);
    void undoMove(Move);
    void doCapture(bool, size_t);
    void undoCapture(size_t, size_t);

private:
    // reference to board
    Board & board_;
    // reference to move generator
    MoveGenerator & moveGenerator_;
};

#endif // MOVEMAKER_H
